package com.fengmi.service.impl;

import com.fengmi.entity.MallGoodsTemplate;
import com.fengmi.mapper.MallGoodsTemplateMapper;
import com.fengmi.service.MallGoodsTemplateService;
import com.fengmi.vo.InfoResult;
import com.fengmi.vo.PageResult;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.List;

/**
 * Author: 施俊豪
 * Date: 2022/1/20 16:21
 * Note:
 */
@Service
public class MallGoodsTemplateServiceImpl implements MallGoodsTemplateService {

    @Autowired(required = false)
    private MallGoodsTemplateMapper mallGoodsTemplateMapper;

    /**
     * @Note : 商品模板的条件+分页查询
     * @Date : 2022-01-20 16:22:18
     * @Author : 清酒吖
    */
    @Override
    public PageResult<MallGoodsTemplate> findTemplates(MallGoodsTemplate template,String pageNum,String pageSize) {
        // 通过分页查询进行分页
        PageHelper.startPage(Integer.parseInt(pageNum),Integer.parseInt(pageSize));
        //根据查询条件,查询商品模板
        List<MallGoodsTemplate> templateList = mallGoodsTemplateMapper.selectGoodsTemplates(template);
        //通过分页插件,进行分页查询,并得到查询结果
        PageInfo<MallGoodsTemplate> pageInfo = new PageInfo<>(templateList);
        //将得到的pageinfo映射给pageResult
        PageResult<MallGoodsTemplate> pageResult = new PageResult<>();
        pageResult.setTotal(pageInfo.getTotal());
        pageResult.setPages(pageInfo.getPages());
        pageResult.setPageList(pageInfo.getList());
        return pageResult;
    }

    /**
     * @Note : 添加商品模板
     * @Date : 2022-01-20 20:04:28
     * @Author : 清酒吖
    */
    @Override
    public InfoResult InsertTemplate(MallGoodsTemplate template) {
        if (template == null || StringUtils.isEmpty(template.getName())) {
            return new InfoResult(false,"参数错误","");
        }
        Integer row = mallGoodsTemplateMapper.InsertTemplate(template);
        return new InfoResult(true,"添加商品模板成功!!!",row);
    }

    /**
     * @Note : 修改商品模板
     * @Date : 2022-01-20 20:53:33
     * @Author : 清酒吖
    */
    @Override
    public InfoResult updateTemplate(MallGoodsTemplate template) {
        // 当传入参数为空时,返回异常参数
        if(template == null){
            return new InfoResult(false, "参数错误","");
        }
        // 当传入参数中商品模板ID为空或者小于等于0时,返回异常参数
        if(template.getId() == null || template.getId()<=0){
            return new InfoResult(false, "参数错误","");
        }
        // 执行修改操作
        Integer row = mallGoodsTemplateMapper.updateTemplate(template);
        // 返回操作结果
        return new InfoResult(true,"修改商品模板成功!!!",row);
    }

    /**
     * @Note : 批量删除商品模板
     * @Date : 2022-01-20 20:53:46
     * @Author : 清酒吖
    */
    @Override
    public InfoResult delTmplates(Integer[] ids) {
        if (ids.length<0){
            return new InfoResult(false, "参数错误","");
        }
        Integer row = mallGoodsTemplateMapper.delTmplates(ids);
        return new InfoResult(true,"成功删除"+row+"条商品模板!!!",row);
    }

    /**
     * @Note : 查询所有的商品模板
     * @Date : 2022-01-24 00:17:15
     * @Author : 清酒吖
     * @return
    */
    @Override
    public InfoResult<List<MallGoodsTemplate>> findTemAll() {
        List<MallGoodsTemplate> templateList = mallGoodsTemplateMapper.selectGoodsTemplates(new MallGoodsTemplate());
        return new InfoResult(true,"查询成功！！！",templateList);
    }
}
